2019년10월19일 16번
[과목 구분 없음] 다음은 숫자를 처리하는 C 프로그램이다. 프로그램에서 ㉠과 ㉡에 들어갈 내용과 3 2 1 4를 입력하였을 때의 출력결과를 바르게 짝지은 것은? (단, 다음 프로그램에 문법적 오류는 없다고 가정한다.) (순서대로 ㉠, ㉡, 출력 결과)

- ① lt+a, lt+b, 1 2 3 4
- ② lt+a, lt+b, 1 2 4
- ③ lt[a], lt[b], 4 3 2 1
- ④ lt[a], lt[b], 4 2 1
(정답률: 30%)
문제 해설
㉠에서는 배열 lt의 첫 번째 요소에 3을 대입하고, 배열 lt의 두 번째 요소에 2를 대입한다. 따라서 lt[0]은 3, lt[1]은 2가 된다. ㉡에서는 배열 lt의 두 번째 요소와 세 번째 요소를 서로 바꾸고, 배열 lt의 첫 번째 요소와 네 번째 요소를 서로 바꾼다. 따라서 lt[0]과 lt[3]이 바뀌고, lt[1]과 lt[2]가 바뀌어 lt 배열은 {4, 2, 3, 1}이 된다. 따라서 출력 결과는 1 2 4가 된다.
정답이 "lt+a, lt+b, 1 2 4" 인 이유는, ㉠에서는 배열 lt의 첫 번째 요소에 3을 대입하고, 배열 lt의 두 번째 요소에 2를 대입한다. 따라서 lt[0]은 3, lt[1]은 2가 된다. ㉡에서는 배열 lt의 두 번째 요소와 세 번째 요소를 서로 바꾸고, 배열 lt의 첫 번째 요소와 네 번째 요소를 서로 바꾼다. 따라서 lt[0]과 lt[3]이 바뀌고, lt[1]과 lt[2]가 바뀌어 lt 배열은 {4, 2, 3, 1}이 된다. 따라서 출력 결과는 1 2 4가 된다.
정답이 "lt+a, lt+b, 1 2 4" 인 이유는, ㉠에서는 배열 lt의 첫 번째 요소에 3을 대입하고, 배열 lt의 두 번째 요소에 2를 대입한다. 따라서 lt[0]은 3, lt[1]은 2가 된다. ㉡에서는 배열 lt의 두 번째 요소와 세 번째 요소를 서로 바꾸고, 배열 lt의 첫 번째 요소와 네 번째 요소를 서로 바꾼다. 따라서 lt[0]과 lt[3]이 바뀌고, lt[1]과 lt[2]가 바뀌어 lt 배열은 {4, 2, 3, 1}이 된다. 따라서 출력 결과는 1 2 4가 된다.